The direct instantiation directly instantiates the entity instead of the component:

architecture Structure of E_Struct is
 -- no component...
begin
   I1: entity Work.E(A)
        port map(Clk => A; Output => B);
end Structure;

-- no configuration...

The last examples also illustrate how a certain architecture is bound to an entity:

  • by configuration
       configuration CONF of E is
         for Structure
          ...
    In the configuration CONF the architecture Structure is bound to entity E.
  • by instantiation
       ...E(A)...
    Architecture A is bound to entity E.

If the configuration or the architecture in the direct instantiation is omitted, default rules can become effective:
  • if there is only one architecture this one is chosen
  • otherwise the temporally last analyzed is chosen (this also can be an architecture in another source file)

Note: It is an error if an abstract architecture is bound to an entity, but default rules might select an abstract architecture. So the binding should always be done explicitly.

An architecture can only be bound to an entity, if it has been declared as an architecture of this entity. So for example an architecture of a parent entity can not be bound to a child entity; in this case a new architecture has to be derived explicitly.